import pandas as pd
import numpy as np

# DataFrame
"""
# 是一个表格型的数据结构，有一定顺序排列的多列数组组成，dataframe既有行索引，又有列索引
-- 行索引：index
-- 列索引：columns
-- 数据：values (NumPy数组)
"""

# 1.创建DataFrame
# 1.1 字典形式创建
d = {
    'name': ['千峰', 'python', 'pandas'],
    'age': [21, 22, 33],
}
df = pd.DataFrame(d)
print(df)

# 1.2DataFrame的基本属性和方法
"""
-- values值，二维ndarray数组
-- columns列名，索引数组
-- index行名，索引数组
-- shape形状，(行数，列数)
-- head()查看前几行数据,默认5行
-- tail()查看后几行数据,默认5行
"""
print("\nDataFrame的基本属性和方法")
print(df.values)
print(df.columns)
print(df.index)
print(df.shape)
print(df.head(2))
print(df.tail(2))

# 设置行索引和列索引
print("\n设置行索引和列索引")
df.index = list('ABC')
df.columns = ['姓名', '年龄']
print(df)
# 也可以创建的时候设置
d = {
    'name': ['java', 'python', 'pandas'],
    'age': [21, 22, 33],
}
df = pd.DataFrame(d,index=list('ABC'))
print(df)
# 1.3其他常用创建DataFrame的方法
print("\n其他常用创建DataFrame的方法")
df1 = pd.DataFrame(
    data=np.random.randint(10, 100, size=(4, 6)),
    index=['小明', '小红', '小刚', '小李'],
    columns=['语文', '数学', '英语', '化学', '物理', '生物'],
)
print(df1)
print(df1.语文)






print("\nDataFrame的练习------------------------------------------")
data = np.random.randint(10, 100, size=(4, 4))
index = ['A', 'B', 'C', 'D']
columns = ['W', 'X', 'Y', 'Z']
df = pd.DataFrame(data, index=index, columns=columns)
print(df)
print("\n索引：")
print(df.index)
print(df.columns)
print(df.loc[['A', 'B']])
print(df.iloc[[0, 1]])















